package com.lagou.config;

import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.WebResourceRoot;
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.webresources.DirResourceSet;
import org.apache.catalina.webresources.StandardRoot;

import javax.servlet.ServletException;
import java.io.File;

/**
 * 完成Tomcat创建和启动
 */
public class SpringApplication {

    public static void run(){
        try {
            Tomcat tomcat = new Tomcat();
            // 设置端口
            tomcat.setPort(8085);
            //读取项目路径 ，'/' 可以加载静态资源
            StandardContext context = (StandardContext)tomcat.addWebapp("/", new File("src/main").getAbsolutePath());
            // 禁止重新载入
            context.setReloadable(false);
            // class读取地址
            File file = new File("target/classes");
            // 创建webRoot
            WebResourceRoot standardRoot = new StandardRoot(context);
            // tomcat内部读取class文件进行执行
            // tomcat内部虚拟空间
            standardRoot.addPreResources(new DirResourceSet(standardRoot,"/WEB-INF/classes",file.getAbsolutePath(),"/"));
            tomcat.start();
            System.out.println("Tomcat启动成功");
            //异步进行接收请求
            tomcat.getServer().await();
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}
